<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>CruiseControl.NET : ForceBuildPublisher</title>
	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">	    
    </head>

    <body>
	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
		    <tr>
			    <td valign="top" class="pagebody">
				    <div class="pageheader">
					    <span class="pagetitle">
                            CruiseControl.NET : ForceBuildPublisher
                                                    </span>
				    </div>
				    <div class="pagesubheading">
					    This page last changed on Jun 26, 2009 by <font color="#0050B2">csut017</font>.
				    </div>

				    <p>The ForceBuildPublisher forces a build on a local or remote build server.  It uses .NET Remoting to invoke a forced build on the CruiseControl.NET server at the specified URI.<br/>
The forced build runs asynchronously, i.e. the ForceBuildPublisher does not wait for the forced build to finish.  The ForceBuildPublisher is a great way to help <a href="Splitting the build.html" title="Splitting the build">split the build</a>.</p>

<p>For CruiseControl.NET version 1.0 and later, an alternative to the ForceBuildPublisher is the <a href="Project Trigger.html" title="Project Trigger">Project Trigger</a>.<br/>
The main difference is that the ForceBuildPublisher is placed in the configuration for the primary project, while the ProjectTrigger is is placed in the configuration for the dependent project.</p>

<h4><a name="ForceBuildPublisher-ConfigurationExample"></a>Configuration Example</h4>

<p><div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-xml"><span class="code-tag">&lt;publishers&gt;</span>
    <span class="code-tag">&lt;forcebuild&gt;</span>
        <span class="code-tag">&lt;project&gt;</span>AcceptanceTestProject<span class="code-tag">&lt;/project&gt;</span>
        <span class="code-tag">&lt;serverUri&gt;</span>tcp://buildserver2:21234/CruiseManager.rem<span class="code-tag">&lt;/serverUri&gt;</span>
        <span class="code-tag">&lt;integrationStatus&gt;</span>Success<span class="code-tag">&lt;/integrationStatus&gt;</span>
        <span class="code-tag">&lt;enforcerName&gt;</span>Forcer<span class="code-tag">&lt;/enforcerName&gt;</span>
   <span class="code-tag">&lt;/forcebuild&gt;</span>
<span class="code-tag">&lt;/publishers&gt;</span></pre>
</div></div><br clear="all" /></p>
<h4><a name="ForceBuildPublisher-ConfigurationElements%3A"></a>Configuration Elements:</h4>

<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Node </th>
<th class='confluenceTh'> Description </th>
<th class='confluenceTh'> Type </th>
<th class='confluenceTh'> Required </th>
<th class='confluenceTh'> Default </th>
<th class='confluenceTh'> Version </th>
</tr>
<tr>
<td class='confluenceTd'> project </td>
<td class='confluenceTd'> The CCNet project to force to build </td>
<td class='confluenceTd'> string </td>
<td class='confluenceTd'> true </td>
<td class='confluenceTd'> n/a </td>
<td class='confluenceTd'>&nbsp;</td>
</tr>
<tr>
<td class='confluenceTd'> serverUri </td>
<td class='confluenceTd'> The URI for the local or remote server managing the project to build.  The default value is the default URI for the local build server. </td>
<td class='confluenceTd'> string </td>
<td class='confluenceTd'> false </td>
<td class='confluenceTd'> tcp://localhost:21234/CruiseManager.rem </td>
<td class='confluenceTd'>&nbsp;</td>
</tr>
<tr>
<td class='confluenceTd'> integrationStatus </td>
<td class='confluenceTd'> The condition determining whether or not the remoting call should be made. <br clear="all" />
The default value is "Success" indicating that the specified build will be forced if the current build was successful.  Other legal values are "Exception" or "Failure". </td>
<td class='confluenceTd'> string </td>
<td class='confluenceTd'> false </td>
<td class='confluenceTd'> Success </td>
<td class='confluenceTd'>&nbsp;</td>
</tr>
<tr>
<td class='confluenceTd'> enforcerName </td>
<td class='confluenceTd'> Identification of a ForceBuildPublisher. This value is passed to the CCNetRequestSource attribute of the forced&nbsp; project's build. <br clear="all" /> </td>
<td class='confluenceTd'> string <br clear="all" /> </td>
<td class='confluenceTd'> false <br clear="all" /> </td>
<td class='confluenceTd'> BuildForcer </td>
<td class='confluenceTd'>&nbsp;</td>
</tr>
<tr>
<td class='confluenceTd'> description </td>
<td class='confluenceTd'> If filled in, this will be shown in the buildstage as the process name <br clear="all" /> </td>
<td class='confluenceTd'> string <br clear="all" /> </td>
<td class='confluenceTd'> false <br clear="all" /> </td>
<td class='confluenceTd'> n/a </td>
<td class='confluenceTd'>&nbsp;</td>
</tr>
<tr>
<td class='confluenceTd'> dynamicValues </td>
<td class='confluenceTd'> Any dynamic parameters to be used. See <a href="Dynamic Parameters.html" title="Dynamic Parameters">Dynamic Parameters</a> </td>
<td class='confluenceTd'> Dynamic values array - see <a href="Dynamic Parameters.html" title="Dynamic Parameters">Dynamic Parameters</a> </td>
<td class='confluenceTd'> No </td>
<td class='confluenceTd'> <em>None</em> </td>
<td class='confluenceTd'> 1.5.0 </td>
</tr>
</tbody></table>

				    
                    			    </td>
		    </tr>
	    </table>
	    <table border="0" cellpadding="0" cellspacing="0" width="100%">
			<tr>
				<td height="12" background="http://confluence.public.thoughtworks.org//images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
			</tr>
		    <tr>
			    <td align="center"><font color="grey">Document generated by Confluence on Sep 29, 2009 20:59</font></td>
		    </tr>
	    </table>
    </body>
</html>